package kr.co.doriclassic.pro10;

import java.util.Arrays;
import java.util.Random;

/**로또 생성기2
 * @author M201_06
 * 0-44까지의 수를 미리 초기화 해두고 
 *해당 값이 중복이지 않으면 불리언 값 true 결정
 *최후 true가 된 것만 순차적으로 출력하면된다.
 */
public class LottoGenerator2 {
	private boolean[] lotto=new boolean[45];
	private Random rnd;
	private static final int SIZE=6;//숫자의 개수
	
	public LottoGenerator2() {
		this.lotto = lotto;
		rnd = new Random();
	}
	
	private void getLottoNum(){
		int num=-1;
		initLotto();
		for(int i=0;i<SIZE;i++){
			num=rnd.nextInt(45);
			if(lotto[num]){//참이면 반복숫자
				i--;
			}
			else{//거짓이면 반복숫자
				lotto[num]=true;
			}
		}
		prnLottoNum();
	}
	
	public void getLottoNums(int cnt){
		for (int i = 0; i < cnt; i++) {
			getLottoNum();
		}
	}
	private void initLotto() {
		for (int i = 0; i < lotto.length; i++) {
			lotto[i]=false;
		}
		
	}

	
	public void prnLottoNum(){
		for (int i = 0; i < lotto.length; i++) {
			if(lotto[i]){
				System.out.printf("%3d",i+1);
			}
		}
		System.out.println();
	}
	@Override
	public String toString() {
		return Arrays.toString(lotto);
	}

	public static void main(String[] args) {
		LottoGenerator2 lotto = new LottoGenerator2();
		lotto.getLottoNums(3);
	}
}
